Visualização com ggplot2
1 Introdução
Os exercícios a seguir foram retirados do site https://www.yan-holtz.com/PDF/Ggplot2_basicTP.html. Esta lista contempla algumas funcionalidades básicas do ggplot2, além de fazer uso do pacote dplyr para a manipulação dos dados.
Para fazer esta lista, crie um notebook no Rstudio. Tente separar os exercícios em chunks e documentar os comentários/respostas pertinentes. Para realizar os exercícios, precisaremos carregar os pacotes ggplot2 e dplyr :
library(ggplot2)
library(dplyr)
# caso algum pacote não esteja instalado: install.packages(...)
Podemos, alternativamente, carregar a biblioteca tidyverse, que “contém” (dentre outros) os pacotes ggplot2 e dplyr:
library(tidyverse)
2 Correlação
Nesta secção, iremos abordar scatterplots e bubble plots, dois dos gráficos mais comuns para visualizar correlações entre variáveis.
2.1
Carrege o dataset gapminder, contido no pacote gapminder. Observe as primeiras 6 linhas com a função head() e descreva brevemente o que você observa. Quantas linhas este dataset tem? Utilize a função nrow():
# instale o pacote se necessário: install.packages(...)
# carregue o pacote
library(...)
# agora que você carregou o pacote, o objeto gapminder pode ser acessado. Dê uma olhada:
head(...)
# quantas linhas?
nrow(...)
2.2
Quantos anos estão disponíveis neste dataset? Quantas observações (“data-points”) existem para cada ano? Abaixo temos o código completo para responder a essas perguntas (lembre-se dos verbos do dplyr, e caso você não conheça alguma das funções, consulte help(...) ou ?...).
# Número de anos diferentes:
gapminder %>%
select(year) %>%
unique() %>%
nrow()
# número de países disponíveis por ano?
gapminder %>%
group_by(year)
summarize( n=n() )
2.3
Construa um scatterplot mostrando a relação entre gdpPercap e lifeExp em 1952. Utilize geom_point(). O que você observa?
# complete as lacunas
gapminder %>%
filter(year=="1952") %>%
ggplot( aes(x=..., y=...)) +
geom...
2.4
No gráfico anterior, um país se destaca. Qual? Complete o código abaixo para identificá-lo:
gapminder %>%
filter(...)
Você deverá obter algo como:
## # A tibble: 1 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Kuwait Asia 1952 55.6 160000 108382.
2.5
Agora, contrua o mesmo scatterplot, mas sem exibir este país. Você percebe alguma tendência? Qual? Ela faz sentido? O que poderia melhorar na visualização?
# complete:
gapminder %>%
filter(...) %>%
ggplot(...
Você deve obter um gráfico como este:
2.6
Colora os pontos de acordo com seus continentes (coluna continent). No parâmetro aes(), use o argumento color (lembre-se de recorrer ao help(ggplot) ou ?ggplot)
gapminder %>%
filter(...) %>%
ggplot( aes(..., color=...)) +
...
2.7
Vamos adicionar mais uma variável à nossa visualização: fazer o tamanho dos círculos proporcional à população do país (pop). Isto é feito utilizando o argumento size de aes().
2.8 Bônus
Agora, tente o seguinte:
- experimente o tema
theme_minimal()doggplot2 - adicione transparência para os círculos com o argumento
alphaemgeom_point() - ordene os dados por tamanho de população para colocar os círculos menores por cima dos maiores
- utilize a função
ggplotly()do pacoteplotlypara tornar este gráfico interativo
Você deverá obter algo como este gráfico: